package com.iblancasa.comedoresUGR; import android.app.FragmentManager; import android.content.Context; import android.os.AsyncTask; import android.support.wearable.view.GridViewPager; import org.jsoup.Connection; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Calendar; public class ParserComedor extends AsyncTask<String, Void, String> { private ArrayList<Dia> semana = new ArrayList<>(); private Context contextoPadre; private GridViewPager gridViewPager; ArrayList<String> platosMenu; private FragmentManager fManager; public ParserComedor(Context ctx, GridViewPager grid, FragmentManager fm){ super(); contextoPadre = ctx; gridViewPager = grid; fManager = fm; } @Override protected String doInBackground(String... strings) { Connection.Response response = null; try { response = Jsoup.connect(strings[0]) // .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21") .execute(); } catch (IOException e) { e.printStackTrace(); } if(response!=null) { int statusCode = response.statusCode(); if (statusCode == 200) { Document doc = null; try { doc = response.parse(); } catch (IOException e) { e.printStackTrace(); } Elements metaElems = doc.select("#plato"); for (Element metaElem : metaElems) { platosMenu = new ArrayList<>(); Charset utf8charset = Charset.forName("UTF-8"); Charset iso88591charset = Charset.forName("ISO-8859-1"); String diaplato = metaElem.getElementById("diaplato").getElementById("fechaplato").text(); diaplato = diaplato.replaceAll("\\<.*?>",""); diaplato = diaplato.replaceAll(" +", " "); Element menuDia = metaElem.getElementById("platos"); Elements platos = menuDia.children(); for (Element plato : platos) { platosMenu.add(plato.html().replaceAll("\\<.*?>","").replaceAll(" +", " ")); } Dia d = new Dia(diaplato, platosMenu); semana.add(d); } } else{ platosMenu = new ArrayList<>(); platosMenu.add("No hay conexión"); Dia d = new Dia("Algo falló",platosMenu); semana.add(d); } } else{ platosMenu = new ArrayList<>(); platosMenu.add("No hay conexión"); Dia d = new Dia("Algo falló",platosMenu); semana.add(d); } return ""; } @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Dia d = getHoy(); gridViewPager.setAdapter(new GridPagerAdapter(contextoPadre, fManager,d.getComida(),d.getDia())); } public Dia getHoy(){ if(semana.size()!=1) { Calendar rightNow = Calendar.getInstance(); String dia=null; switch (rightNow.get(Calendar.DAY_OF_WEEK)) { case Calendar.MONDAY: dia = "Lunes"; break; case Calendar.TUESDAY: dia = "Martes"; break; case Calendar.WEDNESDAY: dia = "Miércoles"; break; case Calendar.THURSDAY: dia = "Jueves"; break; case Calendar.FRIDAY: dia = "Viernes"; break; case Calendar.SATURDAY: dia = "Sábado"; break; case Calendar.SUNDAY: ArrayList<String> cerrado = new ArrayList<String>(); cerrado.add("Hoy el comedor está cerrado"); Dia domingo = new Dia("Domingo", cerrado); return domingo; } for (int i = 0; i < semana.size(); i++) { if (semana.get(i).getDia().contains(dia)) { return semana.get(i); } } } return semana.get(0); } }